home *** CD-ROM | disk | FTP | other *** search
- /* fillarea.c - fill sort area with records */
- #include "stdio.h"
- #include "sorttext.h"
-
- int rsize ; /* size of record found */
- char rarea[ MAX_RSIZE ] ; /* storage for one record */
-
- int fillarea(area,asize,p,psize,pnp,infile)
- char area[] ; /* address of storage area for strings */
- int asize ; /* size of area */
- char *p[] ; /* storage pointers to records here */
- int psize ; /* size of p[] - ( max. no. records ) */
- int *pnp ; /* store no. of records at this loc. */
- FILE *infile ; /* input file */
- {
- int nrec ; /* counter for number of records found */
- unsigned start ; /* index of first free byte in area[] */
-
- start = 0 ; /* free space at area[0] */
- nrec = 0 ; /* no records yet */
-
- while( rsize > 0 ) /* stop at enf-of-file */
- { /* check for room */
- if( ( (start+rsize) > asize ) || ( nrec >= psize ) )
- { *pnp = nrec ;
- return( NOT_EOF ) ;
- }
- /* copy record to storage area */
- movedata( & area[start] , rarea,rsize) ;
-
- p[nrec] = & area[start] ; /* store pointer to record */
- nrec = nrec + 1 ; /* count it */
- start = start + rsize ; /* move start past this record */
- /* get next record */
- rsize = getrec(rarea,MAX_RSIZE,infile) ;
- } ;
- *pnp = nrec ;
- return( AT_EOF ) ;
- }
-
-
- initfill(infile) /* called first time to read first record */
- FILE *infile ;
- {
- rsize = getrec(rarea,MAX_RSIZE,infile) ;
- }
-
-
-